/**********************************************************************************************************************
 *
 * Project:    mGameEngine
 * File:       gpuprogramfactory.h
 * Author:     karooolek
 * Created on: 2009-03-25
 *
 **********************************************************************************************************************/

#ifndef GPUPROGRAMFACTORY_H_
#define GPUPROGRAMFACTORY_H_

#include "gpuprogram.h"

namespace mGameEngine
{
namespace Graphics
{

/**
 * GPU program factory base class.
 */
class GPUProgramFactory
{
protected:
    /**
     * Created GPU program.
     */
    GPUProgram *_gpuprogram;

public:
    /**
     * Create GPU program factory.
     */
    GPUProgramFactory();

    /**
     * Destroy GPU program factory.
     */
    virtual ~GPUProgramFactory();

    /**
     * Get created GPU program.
     * @return created GPU program.
     */
    GPUProgram *getGPUProgram() const
    {
        return _gpuprogram;
    }
};

}
}

#endif // GPUPROGRAMFACTORY_H_
